package com.thwj.project.biz.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.thwj.common.annotation.Excel;
import com.thwj.framework.mybatis_plus.MybatisMySQLGeometryHandler;
import lombok.*;
import org.locationtech.jts.geom.Point;

import java.io.Serializable;
import java.util.Date;

;

/**
 * 商家对象 biz_merchant
 *
 * @author generate
 * @date 2023-07-13
 */

@Getter
@Setter
@ToString
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("biz_merchant")
public class Merchant extends Model<Merchant>{
private static final long serialVersionUID=1L;

    /** 主键 */
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 用户id */
            @Excel(name = "用户id")
    private Long userId;

    /** logo */
            @Excel(name = "logo")
    private String logoUrl;

    /** 名称 */
            @Excel(name = "名称")
    private String name;

    /** 分类id */
            @Excel(name = "分类id")
    private Long categoryId;

    /** 分类名称 */
            @Excel(name = "分类名称")
    private String categoryName;

    /** 电话 */
            @Excel(name = "电话")
    private String tel;

    /** 行政区域-省 */
            @Excel(name = "行政区域-省")
    private Long codeProv;

    /** 行政区域-省 */
            @Excel(name = "行政区域-省")
    private String nameProv;

    /** 行政区域-市 */
            @Excel(name = "行政区域-市")
    private Long codeCity;

    /** 行政区域-市 */
            @Excel(name = "行政区域-市")
    private String nameCity;

    /** 行政区域-区 */
            @Excel(name = "行政区域-区")
    private Long codeDistrict;

    /** 行政区域-区 */
            @Excel(name = "行政区域-区")
    private String nameDistrict;

    /** 详细地址 */
            @Excel(name = "详细地址")
    private String address;

    /** 地址名称 */
            @Excel(name = "地址名称")
    private String locationName;

    /** 经纬度 */
    @TableField(typeHandler = MybatisMySQLGeometryHandler.class)
    private Point location;

    /***
     * 临时暂存 距离 放在最后一行
     */
    @TableField(exist = false)
    private Double distance;

    /** 经度 */
            @Excel(name = "经度")
    private Double longitude;

    /** 维度 */
            @Excel(name = "维度")
    private Double latitude;

    /** 营业时间 */
            @Excel(name = "营业时间")
    private String workTime;

    /** 商家简介 */
            @Excel(name = "商家简介")
    private String intro;

    /** 商家相册 */
            @Excel(name = "商家相册")
    private String photoList;

    /** 商家标签json */
            @Excel(name = "商家标签json")
    private String tagJson;

    /** 营业执照图片 */
            @Excel(name = "营业执照图片")
    private String businessLicense;

    /** 法人身份证正反 */
            @Excel(name = "法人身份证正反")
    private String legalPersonList;

    /** 法人电话 */
            @Excel(name = "法人电话")
    private String legalPersonTel;

    /** 推荐类型（1：金牌 2：银牌 3：铜牌） */
            @Excel(name = "推荐类型", readConverterExp = "1=：金牌,2=：银牌,3=：铜牌")
            @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer recommendType;

    /** 推荐排序（1表示位置） */
            @Excel(name = "推荐排序", readConverterExp = "1=表示位置")
            @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer recommendIndex;

    /** 审核状态 */
            @Excel(name = "审核状态")
    private Integer status;

    /** 创建时间 */
            @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
            @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createDate;

    /** 更新时间 */
            @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
            @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date updateDate;




    @Override
    public Serializable pkVal() {
        return this.id;
    }
}
